1. Field of the Invention
The present invention relates generally to data storage systems, and more particularly to network file servers. The present invention specifically relates to a file server system in which access to file attributes is shared among a number of processors.
2. Description of the Related Art
Network data storage is most economically provided by an array of low-cost disk drives integrated with a large semiconductor cache memory. A number of data mover computers are used to interface the cached disk array to the network. The data mover computers perform file locking management and mapping of the network files to logical block addresses of storage in the cached disk array, and move data between network clients and the storage in the cached disk array.
Data consistency problems may arise if concurrent client access to a read/write file is permitted through more than one data mover. These data consistency problems can be solved in a number of ways. For example, as described in Vahalia et al., U.S. Pat. No. 5,893,140 issued Apr. 6, 1999, entitled “File Server Having a File System Cache and Protocol for Truly Safe Asynchronous Writes,” incorporated herein by reference, locking information can be stored in the cached disk array, or cached in the data mover computers if a cache coherency scheme is used to maintain consistent locking data in the caches of the data mover computers.
When a large number of clients are concurrently accessing shared read-write files, there may be considerable access delays due to contention for locks not only on the files but also on the file directories. One way of reducing this contention is to assign each file system to only one data mover assigned the task of managing the locks on the files and directories in the file system. This permits the data mover file manager to locally cache and manage the metadata for the files and directories of the file system. For example, as described in Xu et al., U.S. Pat. No. 6,324,581, issued Nov. 27, 2001, incorporated herein by reference, the data mover acting as the manager of a file grants a lock on the file and provides metadata of the file to another data mover servicing a client request for access to the file. Then the data mover servicing the client request uses the metadata to directly access the file data in the cached disk array.
It is desired to permit clients to have asynchronous writes to a file in accordance with version 3 of the Network File System (NFS) protocol, and concurrent write access and byte range locking to a file in accordance with version 4 of the NFS protocol. (See NFS Version 3 Protocol Specification, RFC 1813, Sun Microsystems, Inc., June 1995, incorporated herein by reference, and NFS Version 4Protocol Specification, RFC 3530, Sun Microsystems, Inc., April 2003, incorporated herein by reference.) In this case, it is possible for a file to be updated at about the same time by multiple clients. The NFS protocol specifies that the time of last update of a file should be indicated by a file-modification time attribute, referred to in the protocol as “mtime.”